package util
{
	import flash.utils.ByteArray;

	//============================================================================
	// Base64 
	// 通用的base64转byteArray;
	//============================================================================
	
	internal class Base64 extends ByteArray {
		private static  const BASE64:Array = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0,0,0,63,52,53,54,55,56,57,58,59,60,61,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,0,0,0,0,0,0,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,0,0,0,0,0];
		public function Base64(str:String):void {
			var n:int, j:int;
			for (var i:int = 0; i < str.length && str.charAt(i) != "="; i++) {
				j = (j << 6) | BASE64[str.charCodeAt(i)];
				n += 6;
				while (n >= 8) {
					writeByte((j >> (n -= 8)) & 0xFF);
				}
			}
			position = 0;
		}
	}
}